<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <script>

        // 防抖和节流 
        //    干什么的？  --- 高频率事件触发
        //        防抖   设定延时器 每一次事件触发的时候又清除上一个延时器    事件不再触发一段时间后事件才会触发
        //        节流   设定延时器 事件一旦触发，在这一段时间内都不再触发第二次  


        // 数组哪些方法会改变原数组
        //    splice  sort  reverse   pop  push   shift   unshift

        // 数据劫持的实现
        //    数据劫持：  在复刻一份数据的过程中，添加其他的行为
        //       Object.defineProperty
        //       new Proxy()
        //       区别？

        // 事件委托
        //    把所有子元素的同类型事件  委托给父元素   
        //    给父元素绑定事件    通过事件对象，找到真正的目标源  target 去判断真正绑定事件的对象 再进行相应的逻辑处理

        //    减少事件处理函数  ， 可以给将来的对象绑定事件

        //    基于事件冒泡  --- 所以子元素事件都会触发父元素的同类型事件


        // for  forEach   map  区别
        //    for 循环    
        //    forEach  map   属于数组的方法

        //    for  可以定开始和结束的条件
        //    forEach  map  用于遍历数组   不能修改开始和结束

        //    for  可以提前结束
        //    forEach  map  不能提前结束
 
        //   forEach 只是遍历数组，没有返回值   map遍历数组，然后改变值且返回新的数组


        // Set 

        // Map


        // 模块化

    </script>
    
</body>
</html>